package com.bjsxt.map;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class TestIterator {

    public static void main(String[] args) {

        List<String> list = new ArrayList<>();

        list.add("JavaSE");
        list.add("MySQL");
        list.add("JavaEE");
        list.add("Python");

        System.out.println(list);

        //for-each循环底层是使用迭代器实现
        for(String str : list){

            if ("MySQL".equals(str)) {
                list.remove(str);       // java.util.ConcurrentModificationException
            }
        }

        //实现Iterable接口的集合类，都可以使用迭代器遍历
        /*Iterator<String> it = list.iterator();
        while(it.hasNext()){
            String str = it.next();
            if ("MySQL".equals(str)){
                list.remove(str);     // java.util.ConcurrentModificationException
                //it.remove();        //正确方法
            }
        }*/

        System.out.println(list);
    }
}
